In machine control and process control systems, diagnostics is the ability of the control system to annunciate the root cause which makes the control system move from its programmed sequence of operation, to a non-standard sequence state. The control system must be able to filter out the expected side effects of this departure from standard operating sequence, from additional and significant new problems. For example if the departure were caused by a high discharge pressure on a pump, resulting in halting the pump, subsequent low flow and potentially low discharge pressure alarms would be triggered. These are normal side effects, not additional process faults. However, if the loss of coolant flow results in an excessive tool temperature which might require maintenance personnel to inspect the tooling prior to attempting a restart, the operator needs to become aware of the situation for corrective action.
Diagnostic systems presently in use are generally considered inadequate for various reasons. The logic to monitor the sequence control system generally represents almost twice the logic as the sequence itself. As the control logic gets modified during its lifetime, the diagnostic logic rarely keeps up, and within six months of startup, only the most critical conditions may remain in the diagnostic system. The diagnostic code also adds to the complexity of maintaining the sequence control program in general, due to the huge volume of extra code it adds to the system and the extra steps that have to be scanned.
Early attempted cures to this problem included a sequence monitoring system that monitored a range of inputs and outputs for state change versus time, and stored the information away. It could then detect a out of sequence operation, excess time in a step, etc., and provide this output to a man-machine interface (MMI) device for action by maintenance personnel. When first installed on a machine tool, this capability to diagnose state transitions versus time operated with a reasonable degree of accuracy. However, over time the machine's ability to have a growing variability in exact order of operation of the individual motions that make up the machines operation, caused the diagnostic system to create spurious faults. The allowable time in sequence order was broadened to reduce the spurious faults, but this merely made the number of real faults detectable dramatically smaller. Breaking up the machine sequence into smaller sets of monitored sequences offered some improvement, but made the programming of diagnostics beyond the reach of most original equipment manufactures OEM's, and insupportable by the maintenance staffs of most end users.
A ladder logic programming technique was created that required the user to program the machine sequence in a fixed structure which allowed the control and diagnostic logic to be grouped in such a way that reasonably predictable diagnostics resulted. This solution was widely adopted in systems where standard logic sequences were directly tied to tooling designs created from computer aided design CAD workstations. In machine control, where logic is generally created from scratch to meet each application, it generally did not catch on. It had difficulty in complex machine applications, and generally required a software discipline which was not maintainable at the customer installation.
The next wave of diagnostic systems were based on external computer systems operating in parallel with the programmable logic controllers PLC running the machine sequence. In this area, the external systems were generally based on standard microcomputers and eventually PCs, and fell into one of two categories: expert systems based on learned knowledge, and programmed systems which basically removed the complex ladder diagnostic program and ran the equivalent of that software on the external computer. Expert systems monitored the machine, and linked the fact that the machine halted to a prior case when something similar happened. Since the end state of the machine data was not necessarily indicative as the problem, much false information was generated. Likewise the ability to capture the true cause of the change of sequence proved beyond a knowledge system. One exception to this was a system in which acoustic sensors were used to check assembled engines, transmissions and axles. The system generated a digital profile of the acoustic pattern, and compared this to other known good samples. In the event that the sound profile indicated a problem, the unit could be torn down until the specific problem was identified, and logged into the knowledge base. Thereafter it could always detect that problem. However, it did not have the ability to monitor machine sequences. In parallel programmed systems, the parallel system has to remain synchronized with the control sequence program. Over time, the synchronization may be lost and the diagnostics will fall apart because they may not maintained properly.
Another solution to machine diagnostics was the development of State Logic. The user created an integrated control and diagnostic program, combined with standard system tools to ease the diagnostic programming burden. This was not very successful since state logic products failed to become a mainstream solution to programming machine control. Users valued the comfort of ladder logic over diagnostics created by text based programs, and preferred something which would improve ladder logic, not eliminate it.
To meet the requirements for machine diagnostics and process validation in machine and process control systems, there is a need for a diagnostic system that is integrated into the main programming language and solved by the system logic solver. The diagnostic system should not be a part of an extension created in an auxiliary processor or program.